]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st-entry: Implement Ctrl-u / Ctrl-k keybindings
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 26 Sep 2014 14:43:17 +0000 (15:43 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 26 Sep 2014 20:03:31 +0000 (22:03 +0200)
These keybindings are well-established on the CLI (e.g. "kill-line"
and "unix-line-discard" in readline(3)), and adding support for them
is cheap ...

https://bugzilla.gnome.org/show_bug.cgi?id=737346

src/st/st-entry.c

index 8ad3f80d540aa89c2043560eeea26b292dcb0da2..1507c2df4f8a5411864d523950f828dd5ef02b76 100644 (file)
@@ -662,6 +662,29 @@ st_entry_key_press_event (ClutterActor    *actor,
       return TRUE;
     }
 
+
+  /* delete to beginning of line */
+  if ((event->modifier_state & CLUTTER_CONTROL_MASK)
+      && event->keyval == CLUTTER_u)
+    {
+      int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);
+      clutter_text_delete_text ((ClutterText *)priv->entry, 0, pos);
+
+      return TRUE;
+    }
+
+
+  /* delete to end of line */
+  if ((event->modifier_state & CLUTTER_CONTROL_MASK)
+      && event->keyval == CLUTTER_k)
+    {
+      ClutterTextBuffer *buffer = clutter_text_get_buffer ((ClutterText *)priv->entry);
+      int pos = clutter_text_get_cursor_position ((ClutterText *)priv->entry);
+      clutter_text_buffer_delete_text (buffer, pos, -1);
+
+      return TRUE;
+    }
+
   return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->key_press_event (actor, event);
 }